#-*- coding: utf-8 -*-
'''
@author: Sandro Sousa
@date: 28 de Outubro de 2013
@obs: 29 de Outubro de 2013
criado criterio de paragem de preenchimento de db
main - controlador do sistema
aqui são efectuados pedidos aos modulos respectivos
'''
import managedb
import managexls

import xlrd
import os

dbpath = 'sqlite:///data.db'


def iniciardb():
	'''
	cria e inicia a base de dados
	'''
	global Session
	global session
	global dbpath
	
	engine = managedb.newengine(dbpath)
	managedb.Base.metadata.create_all(engine) 
	#establish Session type, only need to be done once for all sessions
	Session = managedb.newsessionmaker(engine)
	#make a unique session
	session = Session()

def iniciarxls():
	'''
	acede ao ficheiro xls
	'''
	global openSheet

	# name of xls file to open
	xlsfile = 'cna131fresultados.xls'
	# sheet to open
	sheetname = 'Resultados'
	#associates the xls file to book variable
	book = xlrd.open_workbook(xlsfile)
	#sheet which will provide the data
	openSheet = book.sheet_by_name(sheetname)
	

def preencherdb():
	'''
	é efetuada a migração
	de dados para a bd
	'''
	global Session
	global openSheet
	global session

	#collects information from all lines
	for rownum in xrange(4, openSheet.nrows):
		record = managexls.getrecord(openSheet, rownum)
		if record[1].encode('utf-8') == "":
			break
		# adding a record here
		session.add(record[0])

	#commit the transaction
	session.commit()

def limparFicheiros():
	'''
	elimina os ficheiros
	'''
	try:
		os.remove('data.db')
	except:
		pass


'''
modules tryout
'''

limparFicheiros()

iniciardb()
iniciarxls()

preencherdb()